main
John Lauer Publish 0.1.26 0b71841 18d ago

Component library tours

Review the library early, before placement, in the actual EDA selected by the user. Match symbols, footprints and model paths in that EDA; a GLB gallery alone is not native library validation.

Use one reviewed manifest (library.json) to select every component's exact STEP and GLB hashes and its plain or optional MPN-marked variant. If marking is on, a missing marked asset must be resolved or the user must explicitly change that choice. Never silently show plain models in the tour when the board is expected to use marked ones. Preserve the original package frame, and fit marking along the longest usable top-face direction, with pin-1 clearance.

The additive tools/library-tour.py helper builds an interactive Adom 3D viewer from that manifest, then records two distinct clips: a two-second orbit per component and a five-second moving overview. Preview bodies are normalized in size for visibility; source CAD is unchanged. Keep the long walkthrough as a separate review artifact. The final video should include only the short overview by default and remain at most two minutes. Optional brief scrolling component wiki shots belong in a separate library tour when a large BOM would otherwise dominate the final cut.

build --manifest library.json --out library-tour, serve --out library-tour --port 8878, record --out library-tour --port 8878, then inspect both contact sheets and play the clips. Supply your run and thread to the helper. Hash/GLB validation and successful loading are not enough: reject blank, clipped, wrong-variant or motionless clips. clips.json deliberately leaves visual review pending. Register approved clips only after native EDA binding and visible review.

Release integration note: the published source snapshot lacks the installed release's compose and tour implementations (issue #16). This helper is independently runnable; wiring its approved overview into released compose must occur in the complete maintained release tree. Do not replace the installed production binary with the incomplete snapshot or claim that integration is already released.

The early plan now exposes components → libraries → models → library-tour → placement as distinct visits. libraries covers native symbol/pad/model binding; models checks the board's actual selected models; library-tour records their visual review. An existing schematic's library repair is different from later requirements-driven part selection. These are AI-owned steps, not new automated qualification gates.

When marking small components, verify the actual text bounds and surface: a successful etcher job may still overflow a 0402 body or choose a raised terminal. Fit to the upper body with pin-1/polarity and terminal clearance, compare both orientations, preserve the source document's materials, and retain a separate plain model. Never impose a minimum font size that pushes text outside the part. Narrow annular contacts may only support tiny identification text; state that limit. Keep generated lettering as a separate STEP layer when base redistribution rights are unresolved; do not call an etched restricted model independently authored.

After opening or recreating a Hydrogen tour tab, retry a missing frame during the bounded readiness wait. A frame-not-found result before mounting is not a renderer failure. Actual loading/recording errors must still fail; verify decoded frames and advancing playback time on the published wiki video.