The single scissor canvas was z-index:50 (on top, pointer-events:none). That
composites fine in DevTools screenshots but on real Chrome the full-viewport
transparent WebGL layer occluded all page text (header, filter pills, card names).
Move it to z-index:-1 behind content (three.js multi-element pattern): the page
backdrop moves to <html>, <body> and card stages go transparent so the 3D shows
through the stage windows while all text/chrome paints normally on top.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(tools): live-3D Part Catalog page + compendium rework
Both report pages render every part/creature with the real in-game rig (shared
voxel-rig.js) instead of static thumbnails: production lighting, contact shadows,
ACES tone mapping, turntable, drag-to-orbit. A shared IntersectionObserver
context-cap manager (voxel-cards.js) keeps live WebGL contexts capped (~12,
nearest-to-viewport-center prioritized) so 106 parts / 52 creatures never blow the
browser's context limit. Part Catalog adds category sections + a full table.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore: make tracked content English-only (keep CJK command-match table)
Translate cosmetic Chinese (comments, report title, spec mockup) to English.
Keep the load-bearing CJK synonym tables in fallback.py that let the offline
interpreter recognise Chinese command input.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(compendium): expand to 52 broad creatures + shared-renderer report
- Remove IP-adjacent content; 52 original creatures across mammal/mythical/
aquatic/plant/bird/alien/bug/reptile/mascot/robot/amphibian themes via
parametric builders (_quad/_biped/_bird/_blob/_bug/_fish/_serpent) + 16
hand-authored specials.
- report.html: one shared offscreen WebGLRenderer snapshots each creature to an
<img> instead of 52 live contexts (the ~16 WebGL-context cap blanked most
cards). Static 0.7 rad yaw.
- Re-sync report_data.js (52 creatures).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(compendium): data module + report tool + first 12 creatures
Claude-authored freeform creatures across themes (alien/mythical/plant/aquatic/
mascot/bug). compendium.py exposes all_entries/get/random_sample/as_genome;
compendium_data.py holds the growing roster (toward ~50). tools/compendium/
report.html (+ sync_report_data.py) renders the whole roster with the app's
AO voxelizer so the set can be browsed offline anytime.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>