Port of the Poisson-Binomial particle model from agx_emulsion/grain.py to a WebGL2 fragment shader. Drag the divider to compare original vs grain. The grain pass uses a single Poisson draw per channel per sublayer (Poisson-thinning shortcut), Gaussian-approximated for large λ, with a PCG3D hash for per-pixel seeding.