The same Spectre substitution tiling with face-based cellular rules — now with a
WebAssembly compute core. Tiling generation, adjacency building, and CA stepping
all run in compiled WASM. The JS layer only handles rendering and interaction.
v2 Upgrades
10KB WASM module — tiling + adjacency + CA in compiled C
bump allocator — zero GC pressure during simulation
direct memory reads — JS reads tile data from WASM linear memory
same spectre substitution rules and face-based CA logic
all interaction preserved: zoom, pan, click-toggle, palettes