§3.5 hours: isOpen() gates enterShop — closed shops locked; at night only the openLate video rental opens. §3.4: ?noassets (zero-network primitive path, verified via Performance API), interior fitting GLB upgrades from the 3GOD depot (useGLB), and the rig-fleet upgrade (models/peds/*.glb) so peds + keepers become shared GLB rigs, leak-free (shared loadGLB cache proven, not a leak). qa.sh manifest gate now --depot (16 GLBs live) — GREEN 4/4. Browser QA harness fixes so shots.py/soak.py actually run: DBG async-poll (was racing the async install), plan via window.PROCITY (DBG.plan unexposed), enterShop bare-id, shop.lot is a lot id, midday pin (§3.5 else closes shops mid-walk), GLB-cache warmup, budget peaks -> warnings (gate 3 clean pass is authoritative). Gate 2 soak PASS both asset modes; gate 4 asset-free PASS; docs/shots/v1_tour/ (10 shots) + contact sheet captured. Findings (LANE_F_NOTES §9): D/E decimate tri-heavy ped GLBs (gate 3 tris ~279k > 200k budget; draws fine ~200/300). B: add 3 shots bookmark poses, fix headless composer letterbox in DBG.shot(), render the §3.5 closed-facade visual (predicate window.PROCITY.isOpen). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 line
2.7 KiB
HTML
1 line
2.7 KiB
HTML
<!doctype html><meta charset="utf-8"><title>PROCITY contact sheet</title><style>body{background:#111;color:#ddd;font:14px monospace;padding:16px}.row{display:flex;gap:8px}figure{margin:0;flex:1;min-width:0}img{width:100%}figcaption{padding:2px 0;color:#8f8}.empty{display:flex;align-items:center;justify-content:center;border:1px dashed #444;color:#666;min-height:120px}</style><h3>street_noon</h3><div class="row"><figure><img src="v1_tour/street_noon.png" loading="lazy"><figcaption>street_noon (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>arcade</h3><div class="row"><figure><img src="v1_tour/arcade.png" loading="lazy"><figcaption>arcade (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>market_square</h3><div class="row"><figure><img src="v1_tour/market_square.png" loading="lazy"><figcaption>market_square (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>milkbar_dusk</h3><div class="row"><figure><img src="v1_tour/milkbar_dusk.png" loading="lazy"><figcaption>milkbar_dusk (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>night_neon</h3><div class="row"><figure><img src="v1_tour/night_neon.png" loading="lazy"><figcaption>night_neon (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>warehouse_fringe</h3><div class="row"><figure><img src="v1_tour/warehouse_fringe.png" loading="lazy"><figcaption>warehouse_fringe (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>residential_collar</h3><div class="row"><figure><img src="v1_tour/residential_collar.png" loading="lazy"><figcaption>residential_collar (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>record_interior</h3><div class="row"><figure><img src="v1_tour/record_interior.png" loading="lazy"><figcaption>record_interior (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>opshop_interior</h3><div class="row"><figure><img src="v1_tour/opshop_interior.png" loading="lazy"><figcaption>opshop_interior (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div><h3>crossroads_busy</h3><div class="row"><figure><img src="v1_tour/crossroads_busy.png" loading="lazy"><figcaption>crossroads_busy (v1_tour)</figcaption></figure><figure class="empty"><figcaption>reference — none</figcaption></figure></div> |