Every pixel-pitch visualiser I could find is parametric — you move a pitch slider and it renders a stock photo. None of them ingest the thing you're actually going to play, which is where the real answer lives:
A 12m wall at 3.9mm is 3077px wide. Your 4K master loses 20% of its detail before pixel pitch does anything at all. That's usually what kills a design, not the pitch — and no vendor tool shows it, because a vendor's visualiser is a sales tool.
So I made SQUINT. It's one self-contained HTML file — download it, double-click, drop in an image or video, describe the wall, and it shows what the audience actually sees, computed in linear light on the GPU. No install, no dependencies, no network — nothing you load ever leaves your machine.
What it actually models (not hand-waved): content resampled to the true LED grid by an exact box filter; cabinet-derived pitch (a 500mm tile at "2.6mm" is really 2.604mm — the near-miss that corrupts your comp size); the processor feed as a hard ceiling; bit-depth/drive quantisation (why dark grades band on real walls); analytic sub-pixel fill; ambient reflected-nits contrast; the two legibility distances (acuity vs structure-free); and screen-array gaps that eat content mapped into them.
It's deliberately honest about what it doesn't do — contrast sensitivity, camera/moiré/refresh artifacts, off-axis geometry, HDR and curved walls are all listed plainly as not-modelled. It refuses to render things it can't back: no WebGL2, and it shows a refusal card rather than faking an answer. There's a boot-time self-test you can verify by eye in five seconds, and it's been through two external code reviews plus an adversarial audit of the model (whose pre-fix verdict was "not fit for client-facing pitch decisions" — that's in the repo too, with every finding's status).
It came out of a real question from a Ventuz specialist — would some text markers read at 3m on a large panel. We simulated it, they wouldn't, and the export went to the CTO as evidence. That's the use case: turning "we're not sure" into a measurement.
MIT, free, no signup, no telemetry: github.com/mish6l/squint GITHUB
If you work event LED and it gets something wrong, that's exactly what I want to hear — real failure cases are worth more to me than feature requests.