Adom Chip Fetcher
Public Made by Adomby adom
Your whole parts library — manufacturer-grade chip CAD (symbol, footprint, 3D) one tap from your EDA tool.
name: symbol-axis-regen description: chip-fetcher's side of the default-symbol 3D outline — re-render the symbol axis-aware when the user switches the up-axis, and the non-blocking SYM-tile spinner while it regenerates. The symbol-DEFAULT behavior (compositing the white outline + lasered name, the outline contract) lives in adom-symbol's docs/default-symbol-3d-outline.md, not here. Trigger words — axis switch regenerate symbol, chosen_up_axis symbol, sym tile spinner, orientation regen, set-as-up regenerate.
Symbol axis-regen + SYM-tile spinner (chip-fetcher side)
The DEFAULT symbol layout — compositing the white 3D-chip outline + lasered name, why it must be natively white, and the outline contract — is adom-symbol's behavior. See
adom-symbol/docs/default-symbol-3d-outline.md. This playbook is only chip-fetcher's orchestration: keeping that outline in the right ORIENTATION and showing progress.
Axis-aware regeneration
chip-thumbnailer honors info.json.chosen_up_axis when it renders the outline, so
when the user switches the up-axis on a card the symbol's embedded chip must
re-render to match. POST /api/orientation {mpn, axis}
(src/serve.rs::set_orientation):
- Persist
chosen_up_axis. - Off-thread (so the click returns instantly):
adom-chip-thumbnailer rerender <mpn> --kind outline— the LIGHT path that regenerates just the vector outline at the new axis (one OCCT pass, not the whole shaded-iso family). - Then
adom-symbol renderrecomposites the canonical symbol with the new outline. Response includes"regen":"outline+symbol".
Non-blocking SYM-tile spinner
While that regen runs, overlay a lightweight spinner on the SYM tile so the user knows it's refreshing — without blocking the rest of the dashboard:
- Pure-CSS ring,
pointer-events:none, only that one tile dims. Everything else stays interactive. - Data-driven, not a transient DOM node — the dashboard re-renders on a poll
and would wipe a hand-added spinner. Drive it from state keyed on
sym_rev(the<mpn>-symbol.svgmtime): recordsym_revat click-time; the spinner clears the instant a newersym_revarrives (regen done), with a ~95s safety cap so a failed regen can't spin forever. - Show it instantly on click (before the round-trip), then poll just until it clears.
Reference: src/serve.rs::set_orientation; src/ui/index.html — SYM_REFRESHING
map, isSymRefreshing, renderThumb spinner inject, setOrientation.
---
name: symbol-axis-regen
description: chip-fetcher's side of the default-symbol 3D outline — re-render the symbol axis-aware when the user switches the up-axis, and the non-blocking SYM-tile spinner while it regenerates. The symbol-DEFAULT behavior (compositing the white outline + lasered name, the outline contract) lives in adom-symbol's docs/default-symbol-3d-outline.md, not here. Trigger words — axis switch regenerate symbol, chosen_up_axis symbol, sym tile spinner, orientation regen, set-as-up regenerate.
---
# Symbol axis-regen + SYM-tile spinner (chip-fetcher side)
> The DEFAULT symbol layout — compositing the **white 3D-chip outline + lasered
> name**, why it must be natively white, and the outline contract — is
> **adom-symbol's** behavior. See `adom-symbol/docs/default-symbol-3d-outline.md`.
> This playbook is only chip-fetcher's orchestration: keeping that outline in the
> right ORIENTATION and showing progress.
## Axis-aware regeneration
chip-thumbnailer honors `info.json.chosen_up_axis` when it renders the outline, so
when the user switches the up-axis on a card the symbol's embedded chip must
re-render to match. `POST /api/orientation {mpn, axis}`
(`src/serve.rs::set_orientation`):
1. Persist `chosen_up_axis`.
2. **Off-thread** (so the click returns instantly): `adom-chip-thumbnailer
rerender <mpn> --kind outline` — the LIGHT path that regenerates just the
vector outline at the new axis (one OCCT pass, not the whole shaded-iso family).
3. Then `adom-symbol render` recomposites the canonical symbol with the new
outline. Response includes `"regen":"outline+symbol"`.
## Non-blocking SYM-tile spinner
While that regen runs, overlay a **lightweight** spinner on the SYM tile so the
user knows it's refreshing — without blocking the rest of the dashboard:
- Pure-CSS ring, `pointer-events:none`, only that one tile dims. Everything else
stays interactive.
- **Data-driven, not a transient DOM node** — the dashboard re-renders on a poll
and would wipe a hand-added spinner. Drive it from state keyed on `sym_rev`
(the `<mpn>-symbol.svg` mtime): record `sym_rev` at click-time; the spinner
clears the instant a newer `sym_rev` arrives (regen done), with a ~95s safety
cap so a failed regen can't spin forever.
- Show it instantly on click (before the round-trip), then poll just until it
clears.
Reference: `src/serve.rs::set_orientation`; `src/ui/index.html` — `SYM_REFRESHING`
map, `isSymRefreshing`, `renderThumb` spinner inject, `setOrientation`.