The stockAdapter seam built in v1 finally eats. Lane E's stock pack (parody-
transformed Discogs metadata + cover atlas) feeds record-shop bins + the dig
riffle behind ?stock=real. Economy stays a stub (buying = toast).
- Contract handshake (task 1, unblocked E): confirmed E's index schema as-is
in LANE_C_NOTES (items[{id,title,artist,price,price_band,atlas,uv}]; uv
origin top-left, C flips V for WebGL; fail-soft; per-type packs).
- stockpack.js (new): preloadStockPack/getStockPack (cached) + makeStockAdapter.
Atlas texture + material are shared/cached (like depot GLBs); each sleeve is
a cover PLANE sampling the atlas at its baked UV, so all real sleeves in a
room batch to ONE draw (record: 59 draws).
- stock.js binFan: real cover planes (else parody canvas). dig.js: riffles real
covers, pull card shows title/artist/$price/band. interiors.js: opts.stock=
'real' wires the adapter (warn-once + parody fallback if pack absent). Test
page reads ?stock=real, preloads record/book/toy, passes the adapter to the dig.
Validated (E's staged 24-sample; real covers drop in unchanged when E gets the
DB): determinism 0/30, leak-free rooms + real dig (0/0 over 25 cycles), draws
<=139 all rooms (record 59), fail-soft on no-pack types, ?dig=1&stock=real
leak-free. Flag-off + ?noassets untouched (procedural path byte-identical).
qa.sh --strict GREEN. F smoke hook + E contract in LANE_C_NOTES. Shot
docs/shots/laneC/stock_real_r7.jpg.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| before | ||
| laneA | ||
| laneB | ||
| laneB_r4 | ||
| laneC | ||
| laneD | ||
| laneE | ||
| laneF | ||
| references | ||
| v1_tour | ||
| contact.html | ||
| README.md | ||
docs/shots — visual regression + devlog reference tree
Owned by Lane F (each lane also drops its own acceptance screenshots here).
docs/shots/
laneA/ … A: 5 seeds rendered in map.html (spine, arcade, market, milkbars)
laneB/ … B: 3 fixed street cameras (P-key shot harness)
laneC/ … C: 9 types × 5 archetypes interior grid
laneD/ … D: near / mid tiers + busy main street
laneE/ … E: skin contact sheets (new skins vs originals)
v1_tour/ … F: the 10 beauty shots (see tools/shots.py TOUR) — the devlog set
before/ … F: last known-good capture, for side-by-side regression
references/ … real-world reference photos named per shot (street_noon.jpg, arcade.png, …)
contact.html … generated by tools/shots.py — this-run | before | reference
Capture (Lane F, once Lane B's shell + window.DBG hook land)
cd web && python3 -m http.server 8130 # terminal 1
python3 -m venv tools/.venv # once
tools/.venv/bin/pip install playwright
tools/.venv/bin/python -m playwright install chromium
tools/.venv/bin/python tools/shots.py v1_tour --seed 20261990 # terminal 2
open docs/shots/contact.html
Before a risky change, snapshot the good state into before/
(tools/.venv/bin/python tools/shots.py before), then re-run and eyeball contact.html.
The v1 tour list (LANE_F_INTEGRATION §Shots): main-street noon, arcade, market square,
milkbar dusk, night neon, warehouse fringe, residential collar, record interior, opshop
interior, busy crossroads. Adjust TOUR in tools/shots.py as the town evolves.