How many particles fit a VFX budget under mobile CPU throttling?
One looping ember fountain (60 particles/s, about 72 alive per instance), repeated 1 to 64 times. For each count the page warms up 90 frames, then times 120 frames of update() + render + a 1-pixel read-back that waits for the GPU. To emulate a phone CPU, open DevTools → Performance → CPU: 4× or 6× slowdown before pressing Run.