This tree is moved by Pixel Wind · Tree © yalpo

01 - Try it

Drop any PNG sprite and get a seamless wind loop. Your pixels, your palette, frame 1 untouched. Nothing leaves your browser.

Drop a PNG sprite here or

Your own sprites export clean — no watermark, no sign-up. Only the demo tree (© yalpo) is marked.

02 - Why it doesn't shimmer

Rotation sway · 48,406 px change per loop
Pixel Wind · 7,732 px change per loop

Most wind shaders rotate or skew the sprite and round every pixel on its own, so the inside of the canopy flickers. Pixel Wind moves whole leaf clumps by whole pixels instead. Every output pixel takes exactly one pixel from your sprite:

dst(x, y) = src(x − dx, y − dy)

Neighbouring clumps can move by different amounts without tearing seams, and no colour is ever invented.

03 - Checked on every export

  1. Frame 1 is byte-identical to your sprite
  2. No colours or transparency levels that aren't in your sprite
  3. Everything below the pin line never moves
  4. At most 1–3 px sideways and 1 px vertical
  5. The last → first step is as smooth as every other step

04 - Take it into your engine

GIF for sharing. Sprite sheet PNG with Aseprite-style JSON and a wind tag for Godot, Unity or Aseprite. ZIP of single frames.