# verify-pixels

> Claude/Codex skill by [@playcanvas](https://omgskills.com/library/playcanvas/index.md) · 30 stars · Updated 2026-10-21

Use when a PlayCanvas rendering change is meant to leave the image unchanged, to prove it with deterministic captures and pixel comparison.

Tags: agent-skills, ai-agents, claude, claude-code, claude-skills, codex-cli, codex-skills, coding-agents, playcanvas

## Install

```sh
git clone https://github.com/playcanvas/skills /tmp/skills && ln -s /tmp/skills/skills/verify-pixels ~/.claude/skills/verify-pixels
```

## From README

Prove pixels unchanged Choose the gate Byte-exact: the change keeps the same decoded data and the same shading math, so every pixel must match. Side-by-side review: the change alters sampled values, random order, precision, or where math runs. Report it as "not byte-gateable" and show old and new at each pose; do not invent thresholds. Make frames deterministic Load every asset and match camera, canvas size, lighting, and animation time between builds. Seed incidental randomness. Drive animated shaders from one app-owned time value, not Date.now() or performance.now(). app.timeScale = 0 makes dt zero, but update still runs; anything counting frames or reading wall-clock time still advances. Set app.autoRender = false, then app.renderNextFrame = true before each frame to capture. Capture and compare WebGL: await (device as WebglGraphicsDevice).readPixelsAsync(x, y, w, h, pixels). WebGPU: render into a RenderTarget and read its colorBuffer with Texture\#read().

## Links

- HTML page: https://omgskills.com/library/playcanvas/skills/skills/verify-pixels/
- GitHub: https://github.com/playcanvas/skills
- Author: [@playcanvas](https://omgskills.com/library/playcanvas/index.md)

## More from this repo

- [add-effects](https://omgskills.com/library/playcanvas/skills/skills/add-effects/index.md) — Used when adding visual effects to a PlayCanvas app, to choose between particle systems, shader chunks, runtime meshes,...
   - [@playcanvas](https://omgskills.com/library/playcanvas/index.md) · 30 stars
- [apply-conventions](https://omgskills.com/library/playcanvas/skills/skills/apply-conventions/index.md) — Used when writing PlayCanvas Engine code touching transforms, cameras, lights, materials, meshes, bounds, or imports,...
   - [@playcanvas](https://omgskills.com/library/playcanvas/index.md) · 30 stars
- [assemble-scene](https://omgskills.com/library/playcanvas/skills/skills/assemble-scene/index.md) — Used when composing PlayCanvas entity hierarchies from models, colliders, rigid bodies, and scripts, so each object has...
   - [@playcanvas](https://omgskills.com/library/playcanvas/index.md) · 30 stars
