Native painting on a budget: the ring piece and the Trio roll under dense scores master
spatial-rehearsal.mjs used to evaluate a seat gain for every event in its three-second look-ahead each frame, sort them all, and draw boxes, hatch lines and a label for each frame that passed — at Rush E's densest second, 2,616 line fills and 768 boxes in one paint. Now one seat gain per lane per frame, lanes this seat does not carry are never scanned, at most six frames per lane and 48 in all (the nearest), runs of ticks merge, hatching has a per-paint budget of 48 lines, labels only on readable frames and at most 16: 59 boxes, 48 lines, 25 labels at that same second. The Trio piece's roll keeps cursors into lyrics, routes and notes instead of filtering and sorting per frame, caps drawn marks at 72 (this seat's own always, the room's up to 40), merges ticks in a lane, labels at most 16, and allocates nothing per frame: Femrag's feed drops from 279 to 81 boxes at its densest second. The laptop screens are now filled with the seat's colour (full while prepared or playing, a darker shade at rest), everything drawn in an ink chosen against that colour's luminance, notes in their own colours with an ink edge, the beat lamp a flash of ink; the outline rings are gone. fedac/native/tests/paint-density-bench.mjs measures draw calls per frame at a score's densest second with a counting fake of the native API. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>