e07196f2478f2ad559d508f0f7a320e023cd3936
- The opaque menu no longer has the whole court rendered behind it at full resolution — minutes of battery burn nobody could see. - Stands, ads, rot tint, court, lines and the run-off are one cached blit, rebuilt only when the palette actually moves; the clap ripple stays live. - RES derives from devicePixelRatio (capped at 4), so a 2x phone stops painting double the pixels it can show. - One shared noise buffer for every synthesized sound — applause alone was allocating ~200 fresh buffers per cheer. - The touch-steer path stops re-measuring a fixed canvas rect per move event. Skipped as not-quick: the z-sort closure churn and swap-remove splices — real but small, and each is a behavior-preserving refactor for another day. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Languages
JavaScript
75.2%
Python
15.8%
HTML
7.3%
Shell
1.4%
Swift
0.2%