verify-pixels
Use when a PlayCanvas rendering change is meant to leave the image unchanged, to prove it with deterministic captures and pixel comparison.
Install
With your agent
Install OMGSkills skill "playcanvas/skills:skills/verify-pixels" into this agent's normal skills directory: call the OMGSkills MCP get_install_plan tool for your agent and run the script it returns (it installs only the pinned commit and verifies SKILL.md), and stop if MCP or the pin is unavailable. Do not overwrite or change existing skills without asking me.
Manual command
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().
More from this repo
add-effects
Used when adding visual effects to a PlayCanvas app, to choose between particle systems, shader chunks, runtime meshes,...
apply-conventions
Used when writing PlayCanvas Engine code touching transforms, cameras, lights, materials, meshes, bounds, or imports,...
assemble-scene
Used when composing PlayCanvas entity hierarchies from models, colliders, rigid bodies, and scripts, so each object has...
