June
The renderer I threw away
The courses render in 3D. On desktop, running Three.js in a second WebGL context next to Phaser was fine. On a 3GB iPhone it killed the app — white screen mid-render. It wasn't device RAM. It was WebKit's per-process GPU ceiling, which you can't buy your way past.
A smaller texture wasn't going to fix it, so I took Three.js out of the runtime. On June 30, in 50 commits, I replaced it with a Canvas2D shell that draws the board inside Phaser's one GL context off a baked projection. Three still bakes the look offline. The phone never pays for a second renderer.
three.js → canvas2dgpu budgetbaked projection